package main

import "fmt"
import "strings"

/*
	代码说明
	1. 返回的函数和makeSuffix(suffix)变量和返回的函数组合成一个闭包，因为返回的函数引用到suffix这个变量
	2. 我们体会一下闭包的好处，如果使用传统的方法，也可以轻松实现这个功能，但是传统方法需要每次都传入后缀名
*/

func main() {
	f := makeSuffix(".jpg")
	fmt.Println("文件名处理后 =", f("winter"))
	fmt.Println("文件名处理后 =", f("bird.jpg"))
}

func makeSuffix(suffix string) func (string) string {
	return func(name string) string {
		// 如果name没有指定后缀，则加上，否则返回原来的名字
		if strings.HasSuffix(name, suffix) == false {
			return name + suffix
		}
		return name
	}
}